﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MetaSharp.Transformation.Lang.Ast;
using MetaSharp.Transformation;

namespace StateMachineCompiler.Ast
{
	public class StateMachineDeclaration : TypeDeclaration, INode
	{
		public StateMachineDeclaration()
		{
			this.Events = Enumerable.Empty<EventDeclaration>();
			this.Resets = Enumerable.Empty<ResetDeclaration>();
			this.Commands = Enumerable.Empty<CommandDeclaration>();
			this.States = Enumerable.Empty<StateDeclaration>();
		}

		public IEnumerable<EventDeclaration> Events { get; set; }
		public IEnumerable<ResetDeclaration> Resets { get; set; }
		public IEnumerable<CommandDeclaration> Commands { get; set; }
		public IEnumerable<StateDeclaration> States { get; set; }
	}
}
